package chwgigs.swing.outline;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;

public class J18_BasicComponent1 extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JPasswordField passwordField;

	//< 스윙 기본 컴퍼넌트(텍스트 입력)>
	
	// JComponent 클래스에서 상속받은 클래스 이다. 
	//  문자 '가', 문자열 '가나 다라' ,텍스트 '여러줄 문자' 
	// JTextField        : 한 줄의 문자열을 입력 
	// setColumns
	// JPasswordField : 입력 받은 문자를 * 로 치환해서 출력한다. 
	// JTextArea       : 여러 줄의 문자열을 입력 받는다. 
	//                   단어에 따라 줄과 단어를 줄바꿈 (WRAP)  할 수 있음
	//                   스크롤 기능을 추가하려면 
	//                   JScrollPane을 이용해야 한다. 
	// setToolTipText
	// setFont
	// setMargin
	// setEditable
	// setEnabled
	// setEchoChar
	// setRows
	// setLineWrap
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					J18_BasicComponent1 frame = new J18_BasicComponent1();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public J18_BasicComponent1() {
		setTitle("기본컴퍼넌트-텍스트입력");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JPanel panel = new JPanel();
		contentPane.add(panel, BorderLayout.CENTER);
		
		JScrollPane scrollPane_1 = new JScrollPane();
		// JTextArea 에 스크롤 기능을 추가 
		scrollPane_1.setPreferredSize(new Dimension(350, 150));
		// JScrollPane 의 크기 지정
		panel.add(scrollPane_1);
		
		JTextArea textArea_1 = new JTextArea();
		scrollPane_1.setViewportView(textArea_1);
		// JSxrollPane 의 헤더영역이 아닌 뷰포트영역에 JText Area추가 
		textArea_1.setColumns(45);
		textArea_1.setLineWrap(true);
		textArea_1.setRows(8);
		
		JPanel panel_1 = new JPanel();
		contentPane.add(panel_1, BorderLayout.NORTH);
		
		textField_1 = new JTextField();
		textField_1.setEnabled(false);
		textField_1.setMargin(new Insets(10, 10, 10, 10));
		textField_1.setFont(new Font("맑은 고딕", Font.PLAIN, 12));
		panel_1.add(textField_1);
		textField_1.setColumns(10);
		
		textField = new JTextField();
		textField.setMargin(new Insets(5, 5, 5, 5));
		panel_1.add(textField);
		textField.setColumns(15);
		
		JPanel panel_2 = new JPanel();
		contentPane.add(panel_2, BorderLayout.SOUTH);
		
		passwordField = new JPasswordField();
		passwordField.setPreferredSize(new Dimension(300, 25));
		panel_2.add(passwordField);
		
		JPanel panel_3 = new JPanel();
		contentPane.add(panel_3, BorderLayout.WEST);
		
		JPanel panel_4 = new JPanel();
		contentPane.add(panel_4, BorderLayout.EAST);
	}

}
